Analyse du commerce électronique brésilien¶
Importations des librairies¶
Importations des doonées¶
<class 'pandas.core.frame.DataFrame'> RangeIndex: 99441 entries, 0 to 99440 Data columns (total 68 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 order_id 99441 non-null object 1 customer_id 99441 non-null object 2 purchase_timestamp 99441 non-null datetime64[us] 3 approved_at 99281 non-null datetime64[us] 4 delivered_carrier 97658 non-null datetime64[us] 5 delivered_customer 96476 non-null datetime64[us] 6 estimated_delivery 99441 non-null datetime64[us] 7 status 99441 non-null object 8 annee 99441 non-null int32 9 mois 99441 non-null int32 10 annee_mois 99441 non-null int32 11 jour 99441 non-null int32 12 annee_jour 99441 non-null int32 13 jour_semaine 99441 non-null int32 14 trimestre 99441 non-null int32 15 annee_trimestre 99441 non-null int32 16 semaine 99441 non-null int32 17 annee_semaine 99441 non-null int32 18 heure 99441 non-null int32 19 approuvee 99281 non-null float64 20 envoyee 97658 non-null float64 21 livree 96476 non-null float64 22 estimee 99441 non-null float64 23 int_boleto 99440 non-null float64 24 int_credit_card 99440 non-null float64 25 int_debit_card 99440 non-null float64 26 int_not_defined 99440 non-null float64 27 int_voucher 99440 non-null float64 28 value_boleto 99440 non-null float64 29 value_credit_card 99440 non-null float64 30 value_debit_card 99440 non-null float64 31 value_not_defined 99440 non-null float64 32 value_voucher 99440 non-null float64 33 answer_1 99441 non-null int32 34 answer_2 99441 non-null int32 35 answer_3 99441 non-null int32 36 answer_4 99441 non-null int32 37 answer_5 99441 non-null int32 38 comment_1 99441 non-null int16 39 comment_2 99441 non-null int16 40 comment_3 99441 non-null int16 41 comment_4 99441 non-null int16 42 comment_5 99441 non-null int16 43 creation_1 99441 non-null int32 44 creation_2 99441 non-null int32 45 creation_3 99441 non-null int32 46 creation_4 99441 non-null int32 47 creation_5 99441 non-null int32 48 score_1 99441 non-null int64 49 score_2 99441 non-null int64 50 score_3 99441 non-null int64 51 score_4 99441 non-null int64 52 score_5 99441 non-null int64 53 score 99441 non-null int64 54 answer 99441 non-null int32 55 creation 99441 non-null int32 56 comment 99441 non-null int16 57 customer_unique_id 99441 non-null object 58 zip_code 99441 non-null int32 59 city 99441 non-null object 60 state 99441 non-null object 61 name_state 99441 non-null object 62 lat_min 99163 non-null float64 63 lat_max 99163 non-null float64 64 lat 99163 non-null float64 65 lng_min 99163 non-null float64 66 lng_max 99163 non-null float64 67 lng 99163 non-null float64 dtypes: datetime64[us](5), float64(20), int16(6), int32(24), int64(6), object(7) memory usage: 39.1+ MB
Concaténation de vente et produit¶
<class 'pandas.core.frame.DataFrame'> RangeIndex: 99441 entries, 0 to 99440 Data columns (total 68 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 order_id 99441 non-null object 1 customer_id 99441 non-null object 2 purchase_timestamp 99441 non-null datetime64[us] 3 approved_at 99281 non-null datetime64[us] 4 delivered_carrier 97658 non-null datetime64[us] 5 delivered_customer 96476 non-null datetime64[us] 6 estimated_delivery 99441 non-null datetime64[us] 7 status 99441 non-null object 8 annee 99441 non-null int32 9 mois 99441 non-null int32 10 annee_mois 99441 non-null int32 11 jour 99441 non-null int32 12 annee_jour 99441 non-null int32 13 jour_semaine 99441 non-null int32 14 trimestre 99441 non-null int32 15 annee_trimestre 99441 non-null int32 16 semaine 99441 non-null int32 17 annee_semaine 99441 non-null int32 18 heure 99441 non-null int32 19 approuvee 99281 non-null float64 20 envoyee 97658 non-null float64 21 livree 96476 non-null float64 22 estimee 99441 non-null float64 23 int_boleto 99440 non-null float64 24 int_credit_card 99440 non-null float64 25 int_debit_card 99440 non-null float64 26 int_not_defined 99440 non-null float64 27 int_voucher 99440 non-null float64 28 value_boleto 99440 non-null float64 29 value_credit_card 99440 non-null float64 30 value_debit_card 99440 non-null float64 31 value_not_defined 99440 non-null float64 32 value_voucher 99440 non-null float64 33 answer_1 99441 non-null int32 34 answer_2 99441 non-null int32 35 answer_3 99441 non-null int32 36 answer_4 99441 non-null int32 37 answer_5 99441 non-null int32 38 comment_1 99441 non-null int16 39 comment_2 99441 non-null int16 40 comment_3 99441 non-null int16 41 comment_4 99441 non-null int16 42 comment_5 99441 non-null int16 43 creation_1 99441 non-null int32 44 creation_2 99441 non-null int32 45 creation_3 99441 non-null int32 46 creation_4 99441 non-null int32 47 creation_5 99441 non-null int32 48 score_1 99441 non-null int64 49 score_2 99441 non-null int64 50 score_3 99441 non-null int64 51 score_4 99441 non-null int64 52 score_5 99441 non-null int64 53 score 99441 non-null int64 54 answer 99441 non-null int32 55 creation 99441 non-null int32 56 comment 99441 non-null int16 57 customer_unique_id 99441 non-null object 58 zip_code 99441 non-null int32 59 city 99441 non-null object 60 state 99441 non-null object 61 name_state 99441 non-null object 62 lat_min 99163 non-null float64 63 lat_max 99163 non-null float64 64 lat 99163 non-null float64 65 lng_min 99163 non-null float64 66 lng_max 99163 non-null float64 67 lng 99163 non-null float64 dtypes: datetime64[us](5), float64(20), int16(6), int32(24), int64(6), object(7) memory usage: 39.1+ MB
Préparation des données¶
Nettoyage des valeurs extrem¶
1/ Les temps de livraison dépendent-ils de facteurs annexes ?¶
Quelles sont les dimensions qui ont un impact sur le temps de livraison ?
| state | city | annee_trimestre | livree | |
|---|---|---|---|---|
| 0 | AC | brasileia | 20171 | 0.900000 |
| 1 | AC | cruzeiro do sul | 20174 | 2.297639 |
| 2 | AC | cruzeiro do sul | 20182 | 23.540556 |
| 3 | AC | epitaciolandia | 20174 | 10.963889 |
| 4 | AC | manoel urbano | 20173 | 11.257222 |
| ... | ... | ... | ... | ... |
| 13524 | TO | tocantinopolis | 20174 | 3.322083 |
| 13525 | TO | tocantinopolis | 20181 | 4.264167 |
| 13526 | TO | tocantinopolis | 20182 | 10.511111 |
| 13527 | TO | xambioa | 20174 | 3.153056 |
| 13528 | TO | xambioa | 20183 | 8.562778 |
13529 rows × 4 columns
1 - Distribution des temps de livraison par état¶
On remarque que les médianes des délais ne varie pas beaucoup d'un état à l'autre à l'exeption de certains état en dessous des autres.
| state | city | annee_trimestre | livree | |
|---|---|---|---|---|
| 13409 | TO | alianca do tocantins | 20181 | 23.877778 |
| 13410 | TO | alianca do tocantins | 20182 | 23.972222 |
| 13411 | TO | almas | 20172 | 21.915556 |
| 13412 | TO | alvorada | 20172 | 19.882778 |
| 13413 | TO | alvorada | 20173 | 11.885833 |
| ... | ... | ... | ... | ... |
| 13524 | TO | tocantinopolis | 20174 | 3.322083 |
| 13525 | TO | tocantinopolis | 20181 | 4.264167 |
| 13526 | TO | tocantinopolis | 20182 | 10.511111 |
| 13527 | TO | xambioa | 20174 | 3.153056 |
| 13528 | TO | xambioa | 20183 | 8.562778 |
120 rows × 4 columns
2 - Densité des temps de livraison pas période¶
- La plus part des livraisons se font en 10 jours
- La distribution a une forme gaussienne avec une queue plus étalée vers la droite ce qui indique des cas où les livraison prennent plus de temps. En effet, il y a un deuxième pic dans les 20 jours qui pourrait correspondre aux livraison ayant un retard.
3 - représentaion de la distribution des temps de livraison par état¶
RR : 9.886470189701896 AC : 9.55711111111111
- Meme avec des pays qui des distributions assez éloigné (graph. 1) les différences sont minimes
4 - Carte des temps de livraison moyen¶
- IL y a beaucoup de point foncé dans le Nord-Ouest de l'Amazonie ce qui montre une faiblesse logistic dans ces zones.
- Une grande concentration de point jaune dans les régions de Sao Paulo & Rio de Janeiro montre à l'inverse une meilleurs logistique, mais aussi probablement des distance plus courte.
- Cependant cette analyse n'est pas absolue puisque le sud et les côte présente un nombre conséquent de point rouge.
5 - Temps de livraison moyen par trimestre et par ville¶
Certains États montrent des variations notables des délais selon les trimestres :
- Roraima (RR) : 12 jours au T1, chute à 7,7 jours au T2, puis remonte progressivement.
- Amazonas (AM) : 12 jours au T1, baisse à 8,4 jours au T3, puis stabilisation.
- Amapá (AP) : Passe de 12 jours au T1 à seulement 6,7 jours au T4.
- Mato Grosso do Sul (MS) : Variations de 10 jours à 9,8 jours, puis retour à 10 jours.
Pourquoi ces variations ?
- Ces États étant géographiquement éloignés et moins industrialisés, ils peuvent être plus sensibles aux changements saisonniers ou aux fluctuations logistiques.
Périodes avec des délais légèrement plus élevés
- Trimestre 2 et 3 (avril-septembre) semblent plus optimisés, avec plusieurs États enregistrant une baisse temporaire des délais.
- Trimestre 1 et 4 (janvier-mars et octobre-décembre) montrent des délais plus longs, probablement à cause :
- Du nouvel an et des soldes de début d’année (T1).
- Du Black Friday et des fêtes de fin d’année (T4).
6 - Comparaison des temps de livraison de tout les Etat¶
7 - Evolution du temps de livraison par rapport au temps estimé en fonction du trimestre pour une région¶
RR : 9.886470189701896 AC : 9.55711111111111
8 - Temps de livraison selon le poids du produit¶
Ce graphique nous montre qu'il n'y a aucune variation du temps de livraison en fonction du poids du produit
9 - Relation Poids/Taille vs Temps de livraison¶
10 - Retards en fonction des dimensions du produit¶
Il n'y a aucun rapport en le poids ou le volume et le délais de livraison.
11 - Temps moyen de livraison par mode de paiement¶
De même, le moyen de payement n'a pas d'impact sur le temps de livraison.
12 - Comparaison des écarts de livraison selon le paiement¶
13 - Répartition des paiements selon les délais¶
<Figure size 1000x600 with 0 Axes>
2/ Analyse de l'insatisfaction des clients¶
Nous essayons d'expliquer les facteurs clefs de l'insatisfaction des clients
1 - Score globaux de satisfaction¶
- On observe un proportion importante de score_1 par rapport aux score_2 & 3
- L'évaluation des clients est assez binaire (satisfait / très insatisfait)
2 - Proportion des retards¶
3 - Score de satisfaction en fonction des délais de livraison¶
Ce graphique nous montre que les clients restent globalement satisfaits, mais que certains groupes spécifiques pénalisent fortement les délais long
4 - Variation des scores par tranche de délais de livraison¶
Le score moyen oscille entre 2.88 et 2.93, ce qui signifie que les délais de livraison n’ont pas un impact dramatique sur la satisfaction globale.
De manière surprenante, ceux ayant attendu plus de 18jours ont aussi un score moyen élevé
Cependant ce graphique représente les délais de livraison et non les retard !
La moyenne est moins lisse quand le produit arrive vite ou très lentement !
5 - Focus sur les scores 1 & 5¶
Graphique 1 (score_1)¶
En prenant le temps de retard (et non le temps de livraison) on observe qu'une note base est toujours attribué quelque soit le temps de retard
A l'inverse il n'y a quasiment aucune note basse donné aux produit arrivé en avance
Cependant, les note basse sont aussi données lorsque le retard est inexistant ou minim ce qui indique que le retard n'est pas la seul cause d'insatisfaction (score_1)
Graphique 2 (score_5)¶
Contrairement aux notes de 1, aucune note de 5 n'est attribuée après un retard de 6 jours
Un retard annule quasiment toute possibilité d'une note parfaite
6 - Répartition des scores en fonction du retard¶
Conclusion : La plus part des clients dont les commandes sont arrivé en retard propose un score entre 1 et 3. En se référent au graphique deux on peut donc en déduire que 6300 note basse (1 à 3) peuvent être expliqué par un retard.
7 - Insatisfaction des clients par catégorie de produit¶
Ces graphiques permettent de mettre en évidence les pires catégories de produit
8 - Impacte des retards sur les catégories avec un haute insatisfaction¶
Ce graphique montre l'insatisfaction des clients pour ces catégories n'est pas liée à un potentiel retard puisque les ces catégories de produit ne présente pas des retard particulièrement élevé.
Ce graphique montre qu'une grand part des score 1 est attribué alors même que la livraison est ponctuel. Ainsi, pour ces catégories les retard ne sont effectivement pas le principale déclencheur de l'insatisfaction.
9 - Totale des insatisfactions pour les catégories problématique¶
Conclusion : Ces catégories de produit problématique nous permettent d'expliquer 130 score faible supplémentaire.
Valeurs distinctes dans ventes['score_1'] : ['Carte de crédit' 'Boleto' 'Carte de débit' 'Voucher' nan]
3/ Analyse des produits coûteux et des attentes¶
Identifier si les produits coûteux répondent aux attentes des clients en analysant les scores faibles.
1 - Prix moyen de chaque catégorie d'article¶
Top 10 des catégories les plus coûteuses : category_name fixed_telephony 2075.345699 computers 1357.971775 dvds_blu_ray 1005.155000 small_appliances_home_oven_and_coffee 940.326731 kitchenware_tools_and_gadget 932.772500 signaling_and_security 890.902581 agro_industry_and_commerce 855.416615 books_imported 804.960000 drinks 782.418833 art 713.802500 Name: price, dtype: float64
2 - Proportion des scores faible par prix et catégorie de produit¶
Certaines catégories très chères affichent des scores faibles élevés, comme :
- "Kitchenware_tools_and_gadget" (71.4% de scores faibles pour les prix bas et 100% - pour les prix moyens).
- "PC_gamer" (100% pour la catégorie la plus chère).
- "Security_and_services" (100% pour la tranche de prix la plus élevée).
- "La_cuisine" (100% pour la plage de prix moyen).
Explication possible : Ces produits coûtent cher, donc les attentes des clients sont très élevées. Si le produit ne répond pas parfaitement aux attentes, même un petit défaut peut générer une forte insatisfaction.
3 - Relation entre score faible et prix du produit¶
Ce graphique nous indique qu'il faut ajouter une dimension pour continuer notre analyse, bien qu'une forte proportion des notes faible soit attribué à des produit de bas prix, un prix faible est une mauvaise note ne semble pas être corrélés.
4 - Distribution des scores moyens pondérés pour les produits coûteux¶
Les produits chers ne garantissent pas une satisfaction élevée. Certaines catégories, comme "dvds_blu_ray", reçoivent majoritairement des scores faibles, ce qui peut suggérer une inadéquation entre le prix et la qualité perçue.
Attention, ici nous prenons le prix moins dans le dernier cartil pour chaque catégorie, c'est pourquoi drinks, art & dvds_blu_ray se trouve dans cette liste. Cela nous permet de nous abstraire de la moyen général des prix sur un produits pour analyse les scores sur les produits du derniers quartil uniquement.
5 - Satisfactions sur l'offre haut de gamme des catégories problématique¶
Ce graphique nous montre que pratiquement la moitié des produits présente un score faible de 1 à 3 contre sans note à 5. On peut donc en déduire que l'ensemble des produits de cette catégorie n'est pas problématique.
6 - Impacte des délais sur l'offre haut de gamme¶
Ces graphiques nous montre que le retard n'est pas du tout toléré pour les produits les plus cher.
7 - Impact des retards sur l'offre haut de gamme¶
Lorsque l'on regarde l'impacte des retards sur l'enssemble de nos donner, on observe environ 10% de retour négatif pour un produit arrivé à l'heure prévu. Ce chiffre double lorsque l'on filtre pour ne garder que les catégories problématique. Ainsi, nous pouvons en conclure qu'une certaines offre dans ces produits ne convient pas aux clients.
Cependant, le dernier graphique qui filtre par catégories à problème et par produit haut de gamme nous montre que l'offre haut de gamme n'a pas une réelle importance dans le score négatif.
En effet, les produits étant à la fois dans une catégorie problématique & étant haut de gamme sont peu nombreux, ce qui peut expliquer des moyen d'insatisfaction parfois très haute.